1. Technical Field
The present invention relates to a memory card drive device that controls data transfer between a host device and one or more memory cards, and particularly to improving technology for controlling mass data transfer.
2. Background Art
In the field of professional video devices, dealing with voluminous high-quality moving picture data is called for. In view of this, the use of memory card drive devices capable of accepting multiple memory cards has been suggested in the case where memory cards are used as the recording media with professional video devices. Japanese Patent Application Publication No. 2002-189992 recites conventional technology concerning the formation of memory card arrays by installing multiple memory cards.
The following description relates to a PC card type memory card drive device that employs SD memory cards (hereinafter “SD cards”) as memory cards.
To use a PC card type memory card drive device, the memory card drive device is connected to a video device (“host device”) via a card bus, and writing and reading of data (hereinafter, collectively referred to as “data transfer”) is requested by the host device using ATA commands with the same procedures for accessing a normal PC card. Generally, controls using ATA commands indicate the head logical address from which to start data transfer and the number of sectors to be transferred.
On the other hand, the use of SD commands is required when instructing SD cards in relation to data transfer. With controls using SD commands, data transfer is executed continuously from the issuance of an SD command to start data transfer (hereinafter “transfer start command”) until the issuance of an SD command to end data transfer (hereinafter “transfer end command”).
This difference in the device interfaces requires the memory card drive device to control the operation of SD cards in the manner shown in FIG. 8.
FIG. 8 is a timing chart showing an exemplary operation by a PC card type memory card drive device to read data from a memory card. The host device issues ATA commands to the memory card drive device at timing A[1], A[2], A[3] and A[4] shown at level (a). In response, the memory card drive device, as shown at level (c), interprets the ATA commands and asserts transfer start commands and logical addresses from which to start the read operation to the SD card at timing S[1], S[2], S[3] and S[4].
On receiving a transfer start command, the SD card convert the head logical address to a physical address at the timing shown at level (e) (blackened portion), before reading data recorded in an internal non-volatile memory from the converted physical address and transferring the read data at the timing shown at level (f).
When data of an amount requested by an ATA command is transferred from an SD card, the memory card drive device issues a transfer end command to the SD card at the timing at level (c) (blackened portion) to terminate the read operation by the SD card, and issues a transfer end interrupt to the host device as shown at level (b). Synchronized data transfer between a host device and an SD card can thus be executed.
As a result of the memory card drive device controlling the operations of SD cards by issuing transfer start and end commands (SD commands) at a suitable timing whenever an ATA command requesting data transfer issues from the host device, data transfer can be executed with multiple SD cards installed in the memory card drive device viewed by the host device as a single PC card.
However, overheads are incurred that reduce the transfer rate in comparison to when data is read directly from an SD card, because of processing by the memory card drive device to convert ATA commands to SD commands and processing by the memory card to convert logical addresses to physical addresses being required whenever an ATA command is issued.
Incidentally, high-quality moving picture data can be anywhere from several hundred megabytes to several gigabytes in size. Essentially, with controls using SD commands, the memory card drive device when reading mass data written into a contiguous area of a memory card need only issue a transfer start command specifying the head address and a transfer end command when the end of the data is read.
However, with controls using ATA commands, the data transferable at any one time is restricted to a maximum of 64 Kbytes. Thus in reading mass data such as high-quality moving picture data from an SD card, the host device ends up repeatedly issuing hundreds if not thousands of ATA commands. Even if data transfer requested by a plurality of ATA commands relates to a contiguous area of a memory card, the memory card drive device, in order to synchronize the read operations of the host device and the memory card, is required to terminate the data transfer operation in the memory card every time 64 Kbytes of data is read.
As a result, the effect of overheads on the transfer rate when reading mass data are marked in comparison to when data is read directly from an SD card. Particularly in the case where multiple memory cards are arrayed and data reading is performed in parallel, the data length read from each memory card in response to a single ATA command is further reduced as the number of arrayed memory cards increases, exacerbating the effect of overheads on the transfer rate.
An object of the present invention is to provide a memory card controller, a memory card drive device and a computer program that are able, in the case where a host device uses commands with a short readable data length to instruct the reading of mass data, to suppress the effect of overheads on the read transfer rate while at the same time synchronizing the host device and one or more memory cards.